{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f59bd8fb-a60a-4285-9ffb-e972c6c2b2a0",
   "metadata": {},
   "source": [
    "# Compiler"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "72824c24-0f76-4f3a-ae2c-1b2586b58490",
   "metadata": {},
   "outputs": [],
   "source": [
    "from quantpiler.compiler import assemble"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "337c1b25",
   "metadata": {},
   "source": [
    "## Basics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7001daaf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 269.266x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def assigment_func(a, b, c):\n",
    "    a = False\n",
    "    b = True\n",
    "\n",
    "\n",
    "qc = assemble(assigment_func, 0)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "0e8b52a3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 436.488x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def new_var_func(a, b):\n",
    "    a = True\n",
    "    # Yes, we can create local variables\n",
    "    c = a | b\n",
    "\n",
    "\n",
    "qc = assemble(new_var_func, 0)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "9771655a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 269.266x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def and_func(a, b, c):\n",
    "    c = a & b\n",
    "\n",
    "\n",
    "qc = assemble(and_func, 0)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2ecede54",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 436.488x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def or_func(a, b, c):\n",
    "    c = a | b\n",
    "\n",
    "\n",
    "qc = assemble(or_func, 0)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "1f45a83b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 352.877x284.278 with 1 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def xor_func(a, b, c):\n",
    "    c = a != b\n",
    "\n",
    "\n",
    "qc = assemble(xor_func, 0)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "a2b8336a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAEvCAYAAACzA/EjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAiAElEQVR4nO3deXxU9b3/8dfMZDOJKCgQEqDKHkIBaXApVAsWVIoC4gIVFaXUqsUHFVtUflZvq16VzV4eWCrIBVvoglgSi3pVGkAUZCkgqwQkEELCaiBMyDZzfn+MCaRhmZnM5Mw3834+HjyiZ/2cSeY9Z77ne77HYVmWhYiIGMlpdwEiIhI8hbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuImIwhbiIiMEU4iIiBlOIi4gYTCEuUaPKA+5yqPTYXYlI6MTYXYBIOHm88GU+rNoFew6fmZ7WFPp2gl5XQbzeBWIwh2VZlt1FRIK8vDwWLVrEsmXLyM3NpaioCMuy6NixIyNHjuTJJ58kLi7O7jIlAEdL4M3lcPjk+Ze5NAHG/hDaXtFQVYmElkL8W2PGjGHu3LkkJSWRmprK5ZdfzuHDh9m3bx8Ad955J4sXL7a5SvFXcSlM/xBOnL74svExMG4AtG4W/rpEQk1t4t8aOHAgGzZsoKSkhF27drF27Vry8vJYt24dLVu25N1332XLli12lyl++usa/wIcoLwK5q8Cr05nxEAK8W/de++99OrVC4fDUWt6ZmYmAwYMAGDbtm12lCYBOnISdhYGuE4J7CoKTz0i4aRLOt8qLy8nOzubFStWsHfvXkpKSvB6vcCZ8FabuBlW7w5uvc9zoUur0NYiEm4KcWDZsmU89NBD5OfnX3C5du3aBbztzMxMiop0iteQ+oyeT6v0mwNeb9WG3fzmJz8MfUEiF5GSksL69euDWjfqQ/yLL75g0KBBVFZWMmbMGO677z66detG06ZNiYmJYefOnaSnpxMTE0N6enrA2y8qKqKgoCAMlcv5VHqCa9y2cOl3JcaJ+hB/5plnqKio4JVXXmHixIl15i9duhSArl27Eh8fH/D2U1JS6l2jBMbhcQe1nqf8BGlpaSGuRuTi6pMTUd3F0OPxEB8fj8fj4dChQ7Ro0aLWfK/XS2ZmJhs3buTBBx9k3rx59hQqAdm0H+Z9Gvh6g3vCjzJCXo5IWEV17xS3243H47sHu6ysrM78qVOnsnHjRgCuueaaBq1Ngvfd1nDZJYGt43LC9e3DU49IOEV1iDdp0qTm6/NLL71UE+gVFRVMnjyZ5557jpgYX4uTQtwcLifc1iOwdfqnQ3JCeOoRCaeobk4B+MMf/sBjjz0GQMuWLWnTpg25ubmUlpYyc+ZMHn30UbxeL8XFxTRp0sTmaiUQH22F9zdffLnr2sO914HTcfFlRSJN1F/YfPTRR4mJiWHy5Mnk5eXhcrkYPHgwEydOxOv14vF4aN++vQLcQAO7Qcsm8Mk2yD9ed37zS+GHXeD7HcGhABdDRf2ZuESH/cd8d3F+sg0qqiApDl68S+Et5ovqNnGJHm2v8J2ZXxLr+/8YlwJcGgeFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCF+LeaN2+Ow+HgwIEDdpciIuI3hThw4MABjh49SrNmzWjdurXd5YiI+E0hDmzatAmA7t2721uIiEiAFOIoxEXEXDF2FxAJNm/eDECPHj1srkQk9CwL9h2D9XvhRCk4HNA0Ca5vD60ut7s6qS+FOLXPxFevXs1rr73GqlWrcLvd9OzZkxdeeIGBAwfaW6RIEL4+DO9ugAPH685bsRPaNYe7ekNq04avTUIj6ptTTp06xZ49e3C5XCxbtoy+ffvy+eef11zgXL16NbfddhvZ2dk2VyoSmG0FMHPZuQO82tdH4H8+hr1HGq4uCa2oD/HNmzdjWRYAL774Im+99RYHDx5k48aNFBYWcvPNN+P1evnlL39Zs5xIpCs6AfM+BY/34suWVcKcFXDidPjrktBTiH/bHu7xeHj77bcZPXo0LpcLgMsuu4w5c+bgdDr5+uuv2bVrl52livhtxU6o9Pi/vLscVueGrx4Jn6gP8er28Ntuu41hw4bVmX/VVVeRlpYGQEFBQUOWJhKU0grYsDfw9Vbv9u/MXSKLQvzbEH/00UfPu0yTJk0ASE5OboiSROpl72GoCOAsvNqJ03CwOOTlSJg5rChu6PV4PFx66aWUl5dTXFzMpZdees5lmjZtSklJCYWFhaSkpAS0j8zMTIqKikJVstTToGfXkXhZK0pPFPL+y73tLics2vQcxnUjZwS17oo37+HIns9DXJFcTEpKCuvXrw9q3ajuYvjVV19x+vRpWrRocc4AB1izZg0lJSVkZGQEHOAARUVFaoaJIB6Pp+ZnY/29JLQKfvyfwgN5HGqkr0tjFdUhXn1Rs6Ki4rzLzJo1C4Cf/OQnQe0jmOCX8Km+aO1yuWqudTQ2jtMFWF4PDqcroPUqy0+RwMlG+7pEsvrkRFSHeHV7eHFxMbt27aJTp0615q9cuZIFCxZwxRVXMG7cuKD2EexXJAmP59/1tf22SmnVqEesnLMCtgZ4eDd1S2bmnp3hKUjCJqovbFaHeGxsLI899hgnTpyomZednV3TW2XevHnnbW4RiUQ3dg5seacDftDp4stJ5InqM/Hq5pQ33niDRx55hNatW5Oenk5hYSEHDhzA6XQyY8YMBg8ebHOlIoHplAI/7gFLN/u3/D3XaRwVU0XtmXhRURGHDh2iWbNm/PSnPyU7O5v09HS2bt1KWVkZd955J2vWrOHxxx+3u1SRoAzoBndmQtwFmsYTYuH+Pr7BsMRMUd3FUKJPdZv4ZZfAf91pdzUNo7QC1n3tG8XwwHGwAJcT7u4N11wF8VH9fdx8UXsmLhItEuPgpi4w4TZocolvWnI8XN9BAd4YKMRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAymEBcRMZhCXETEYApxERGDKcRFRAwWY3cBUpdlWZSWltpdRkASExNxOBx2lyESdRTiEai0tJTk5GS7ywjIqVOnSEpKsrsMkaij5hQREYMpxEVEDKYQFxExmEJcRMRgurApUcPjBcuyuwr7WNaZ44/G18GyfH8DXgtinOBsJKewDsuKxl9nZHO73eqdUk+WBfuOwY6DkH8MDhyHk2Vn5juAjinQphl0SvH9t7OR9ZAsKYNN+2D/Mcg/DodO1g7vtKa+4//OldCjLSTG2VdrOHi8vt//7kO+4z9wHMqrzsy/PNF3/G2aQbfWkNrUvlrrQyEegRTiwavywLq98NkuOPCN/+tdeSn06Qg3dICE2PDV1xDyjsKnX8Gm/b4g80ecC3pdBTd2NjfMqp0qg89y4fNcOHHa//XaNYc+neCatmadpSvEI5BCPDj5x2Dhaig8Efw2Lk+Ee6+D9NTQ1dVQyioh69+wenfw23A4oH863NYdYlyhq60hWBZs3AeL14O7PPjtXH0ljLwBWjQJXW3hpBCPQArxwFgW/N9W+GiLr70zFG7oAMMzzQmyvUfg7VXwTYhu9E25DEb/wPfTBOWVsHANbN4fmu3FumBIL+jbKTTbCyeFeARSiPvPa8GitfU7+zyf9FR4+EbfGzqSfVUIb62ACk9ot5sYB4/2hzZXhHa7oVZaAX/8l+8aSKjd8l3ft5JIZlDLj0hdSzaEJ8DBd1Fs/ir/25XtsPcIzAlDgIMvHGflQFE9mqfCraIKZi8PT4AD/N8W+GRbeLYdKgpxMdbm/bDyq/DuY+sBWLEzvPsI1ukK34dMZRgCvJq73NdMUxXGfdTH0s2+D7Kw7mMTfH04vPuoD4V4I5KTk0NOTk7Q6z/yyCN4PB5SUlJCWFV4nCqDResCX+/JW+GFYb6f/np/c2SejWb9G4oDbAMP5vgPFsNHWwPbT0PYcxhWBvgBG8zxW8Bf1vjO+iORQjwKOBwOxo8fz44dOzh9+jT79+9nypQpJCYm1louOzsbgNtvv92OMgPy3iZfkAeqySW+HihNLvF/nSqvr909knx9GNbsCXy9YI4ffE0Kh04Gvr9w8Vrwty98ARuIYI//SEnkNqsoxKPA9OnTmT59Otu3b2fcuHEsWrSIJ554gvfee6/WGOCFhYWsX7+eoUOH2lesH06Vwfq9DbvPPYd9N4tEihVhbkb6T17L1/c+Uuw8CIcb+EPls9zwNl0FSyF+Fq/XyzvvvMPQoUNJTU0lPj6e1NRU+vfvz+9//3sqKirsLjFgXbt2Zdy4cSxevJjhw4czZ84cJkyYwJNPPkn//v0ZMWJEreWXLFlC//79be/zfSFr9thzsfGz3Ibf57kUl8KW/Ibf79qva9/xaKdVNnyguMt9d8BGGoX4tw4fPkz//v25++67ycrKIjY2lp49exIbG0tOTg7PPPMMLleE9zU7h5EjR+J0Onn99ddrTZ89ezZut5tRo0bVmp6VlUVCQgK33hpAo2EDa+iz8Gob8iKjp8rGfaHrDx+IskrfhV67nSrz9Ryywzqb/vYuRCGOr1/2oEGDWLFiBTfddBObN29m3759fPHFF+zbt4+tW7fy9NNPGxnivXv3xuPxsHZt7Ubd8vJyNm3aRO/evWtN3759O7m5uRHbpFJWCYdsushYUWXfvs+276h9+94fpq58gcg/HnhbeEj3HWF31mgUQ2DChAls2LCBvn378tFHHxEXV3skoIyMDDIyMmyqrn5SU1M5evToOZuCCgoK6NOnD7GxsVRWVtZMz8rK4uGHH8blcuHxRFYjYIGNb2DwvYntHlvEzrb5/AgJcbucroBjp3xj7USKqD8T37lzJ3PmzCE+Pp4FCxbUCXDTJSYmUl5+7oEkysrKapY5W1ZWFs2aNePGG28Me32Bqs+4KKFgd1fDSg8cPWXf/u0+foCiYpv3HwGvwdmi/kx84cKFeDweHnjgAdq2bRvy7WdmZlJUVBTQOl5v6BpeS0tLadGixTnnJSQk1Cxztuqz70Cajzp27IizAYZ+63TjI3T/8XPnnPfkrRfvOtYk4czPF4adf7mTp2Hah3Wnz/nfP/H4Hc/4WW3oxSVezh3Pn7/T9sVeg/oef0lpOa1bt/ez2vD4/gNvkZpxyznnher44fyvwdif/4L8TUv8K9ZPKSkprF+/Pqh1oz7EP/nkEwAGDRoUlu0XFRVRUFAQlm374+DBg3Tt2pW4uLg6TSppaWkcOXKkVlMKwNChQykuLmb58uV+76ewsDAU5V5Ui+Li886r7gPsD6fT/2XP5j5VYuvvMz7pwnf3+PsaBHv8ltey9fgBTp8+//iy4T5+gOPHj9n+Gpwt6kM8P9/XV6tdu3Zh2X4wdz96vd6QheK6deu45ZZbuPbaa1m1alXN9Pj4eHr27MnKlSvrrDNkyBDef/99qqr870/WqlWrBjkTT77k/IN9n/Rj7OgmCb43sNdb+yER/m4rIc5JWlraxXcUJs6Y+AvOv9hrUN/j91SetvX4AWJd578qEqrjv9C2miQlhPw1qM9d0lE/imGzZs345ptvWLVqFX369LG7HCD4UQyrb7nv169fzbRu3bqxefNm/vGPf3DXXXfVTP/FL37BjBkzGDVqFAsWLKiZ3qVLF3bs2MG9997L3//+d7/33VCjGO45DDM+Dn79F4b5zsCKS+GFfwS+/sjr4Tp7WxN4MRuOlgS3bn2Pv30LGDcguH2HysdbfWOmBKO+xw/w/+7Qhc2I0qZNGwA+//xzmysJj61btzJz5kyGDx/O4sWLGTNmDFOmTGHatGksX76chQsX1lp+yJAhlJeX88EHH9hU8YW1bup7tJpd2jSzcecRUEPrCDh+O2tIjIMrImyU6KgP8WHDfFc3XnrpJT766KNa8woKCnj55ZfJzY2QW/WCNH78eCZMmEBGRgYzZ85kxIgRzJgxg8GDB/OfX8SGDBlCTk4OJSVBnuqFWXysfQ8qiI+BlhHwkIS2No7v/Z0IGFu87RW+JxDZoY2N+z6fqA/xp556il69enHixAluueUWWrVqxbXXXkuHDh1o06YNzz33HKmpBj6r6yxer5dp06bRpUsXEhISaN26NRMmTMDtdtdarmXLllx33XVkZWXZVKl/eofn8sVFfe8qcEXAO6bXd+x5qHNCrO+BwnZLioeuNr0le19tz34vJAL+JO2VnJzMp59+yosvvkiPHj04ceIEW7duxev1MnToUObPnx/R44iE0h133AEQ8SF+bTuIseEvN1Ie1XVZInRv0/D7va49xEVIVwg7fhfJ8dAz9L2Q6y1CfiX2SkxMZNKkSUyaNMnuUmw1d+5c5s+fH/EDfSUn+M7Gw/VEn3Pp2NL+OzXPdlMX39PsG4rTAX07Ntz+LqZzK2jZpGGHx+3TKTKfuRr1Z+JyhsfjifgArza4J1ya0DD7inXB3dc2zL78dXVz38OcG8rA70LzCHr6u9MBI65vuIvcLZrAzV0baGcBUog3Iv369avVvbAxS4qHe4II1pOnfd3L/OlTXm1QD9+bONIM6QVNA7xhJZjjT2sKAyJw6KCrm8MP0wNbJ5jjdzjgJzdETlPSf4r6fuKRSE+791/WvyFnR/i2370NjO7ru0EkEuUdhTeWhe/RYcnx8MTAyPwQA99YMrP+5bt/IFyG9IJ+AX5YNKQI/dMU8c8d14SvrTYjDR7oE7kBDnDVlTD2pvCcJSbFw8/7R26Ag6+pa+wP4eorw7P9Qd0jO8BBZ+IRSWfigbEs3/MPP/gydA9L6NsJhn0vMroU+mPfUXj7M98wqaHQ6nLfN5BI6Bfvj/Iq+Osa3wMzQiHOBcMyG/a6Q7AU4hFIIR6cgm9g4Wrfz2A1TfLdWt8p+KEsbFNeCf/cBJ/W49FlTgf8KAMGdovMnhgXs3m/76HWp849+rJf2rfw/Q1E0q31F6IQj0AK8eB5vL7HqH22C/YF8ACDFk18Z9/XtfPdFWqy/GOwchdszIMqP0c1jo/x3cjSt7N9d8SGirvc1/30s1z4xn3x5at1bOnrRti9jT03UwVLIR6BFOKhkX/M9yzG/OO+fydKzzwV6NIE3xgcbZpBxxTo0CLybqeuL3e578x0/zHf04CKTpwJ9ViXr8mkTTPfbew92vruyGxMvF7YWei76Jl/3PcNzX3WGfoVyb7jb93MdyeqqR9eCvEIpBAPD8vytZk7HY0vsP3l8fr6Vkfyxdpw+s1i3xC0TRLgt8PtriY0IrTno0joORzgitLwrmbKhdpwqf7wbkwf4lH+KxURMZtCXETEYApxERGDKcRFRAymC5sRKDExkVOnQnTrXQNJTAzy0eEiUi8K8QjkcDgivrueiEQGNaeIiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMT/aJQJZlUVpaancZAUlMTMThcIRse5ZlUer1hGx74ZbodIX0+EX8pRCPQKWlpSQnJ9tdRkBOnToV0kfKlXo9NP3XxyHbXrh9038ASS69naThqTlFRMRgCnEREYMpxEVEDKYQFxExmEJcRMRgCnEREYMpxEVEDKYQFxExmEJcRMRgCnEREYMpxEVEDBb1IT569GgcDscF/+3cudPuMkVEzkkj9nyrY8eOtGjR4pzzEhMTG7gaERH/KMS/9eyzzzJ69Gi7y6iXnJwcAPr16xfU+o888ghvvPEGaWlpFBUVhbI0EQmTqG9OiQYOh4Px48ezY8cOTp8+zf79+5kyZUqdbxjZ2dkA3H777XaUGRaeufOoHDgI74cf1ZlnWRZVT02k8sd3YO3Na/jipEF4vbCtAN7MgZOnfdNOlsHi9XDohL21hUKjC/G8vDwmT57MrbfeSvv27UlKSiIxMZEePXrwyiuvUFFRYXeJDW769OlMnz6d7du3M27cOBYtWsQTTzzBe++9V+tBBoWFhaxfv56hQ4faV2yIOe+/D676Dp4/zsY6crTWPO+7S7C+3ILz/lE4rr7KngIlrAqL4eV/wuzlsP0gWN9Otyz49Cv473/C/FVQUWVjkfXU6JpTfve73zF37lySkpJITU0lIyODw4cP8+WXX/Lll1+ybt06Fi9eXGe9d955hyVLlnDy5EmuvPJKrr/+eu6//36aN29uw1GETteuXRk3bhyLFy/mrrvuqpm+d+9eZsyYwYgRI/jLX/5SM33JkiX85je/ISkpCbfbbUfJIeWIjSXmVxOoeuKXeKa9Tsx/vwiAlX8A77y3cXTpjPPu4TZXKeFw8Bv4n4+hrPLCy23cByVl8PN+EONqmNpCqdGdiQ8cOJANGzZQUlLCrl27WLt2LXl5eaxbt46WLVvy7rvvsmXLljrrLV26lKysLHJycli0aBETJkzg6quv5s9//rMNRxE6I0eOxOl08vrrr9eaPnv2bNxuN6NGjao1PSsri4SEBG699dYGrDK8HB074BxxD9aGf+Nd+gGWx4PntSlgWbh+NQGHy8B3rlyQxwtvrbx4gFfbfQiWbg5vTeHS6EL83nvvpVevXnWed5iZmcmAAQMA2LZtW830Tp06MX36dDZt2kRxcTFut5uVK1cycOBA3G43DzzwAEuXLm3QYwil3r174/F4WLt2ba3p5eXlbNq0id69e9eavn37dnJzcxtVkwqA876R0K4dntlz8M6chfXVLpyjH8DRprXdpUkYbCuAY6cCW2f1big3sFml0TWnlJeXk52dzYoVK9i7dy8lJSV4vV7gTHjHxcXVLP/ss8/W2cYPfvADPvzwQ4YNG0ZWVhbjx49n0KBBRj4INzU1laNHj57zWkBBQQF9+vQhNjaWysozpyxZWVk8/PDDuFwuPB5zHlZ8IY6YGGJ+9SRV48bj/edSHN0ycN451O6yJExW7Qp8nbJK+Hce3NAh5OWEVaMK8WXLlvHQQw+Rn59/weXatWt30W05HA5effVVsrKy2L17N1u2bKF79+4B15SZmRlwd73qD51QSExMpLy8/JzzysrKapY5ceLMZfqsrCyeeuopbrzxxppuixfTsWNHnM7QfbGz4uLgjzNDtj0AkpIgNhaqqnD0zsQRwno7deyEIwovmkeqO57fSlzi5QGv9/Lv/8TGfzwT+oIuIiUlhfXr1we1bqMJ8S+++IJBgwZRWVnJmDFjuO++++jWrRtNmzYlJiaGnTt3kp6eTkxMDOnp6X5ts3PnzjRr1ozjx4+Tm5sbVIgXFRVRUFAQ8HqhUlpaet6bmBISEmqWOVv12bcrgLbiwsLCICs8j4R4YkO4Ocuy8EydDlWV0LYN3oV/xXnTjThSW4Vk+wcLD0LZuT8speE5Yy8Jar2KKmx9vwaj0YT4M888Q0VFBa+88goTJ06sM7+6Xbtr167Ex8f7vd3YWF+UVFUF11iWkpIS8DperzdkoXjw4EG6du1KXFxcnSaVtLQ0jhw5UqspBWDo0KEUFxezfPlyv/fTqlWrkJ+JHwnZ1sC7JBtr85c4H3oQ5w3XU/X4ODxTp+Oa8mpImslSW6XqTDyCVJWXEBPr//u8WqyjirS0tDBUdGHB5ES1RhHiHo+HlStXAvDQQw/Vme/1elmwYAEA11xzjd/bPXLkCIcPHwagdevgLoAF8xXJ7XaTnJwc1P7+07p167jlllu49tprWbVqVc30+Ph4evbsWfO6nW3IkCG8//77AX1w5ebmkpSUFJKaAdyeKpr+6+OQbMsqKMA7dx6Ozp1w3nMXDpcL56j78P7vfLxLsnENG1LvfezK3UWSq1G8nRqFBath3deBr/fapIfo+kbdDIlkjaJ3itvtrmkCqG7nPdvUqVPZuHEjEFiIT506FcuyuOyyy+r04jDF3/72N7xeL+PHj681fezYsSQlJdV8uFXr0qULnTt3JisrqwGrDB/L68UzeRp4vbh+9WRNd0LnPXfh6NQR79x5WAdD3BQktuvbMfB1rkiGLqmhryXcGkWIN2nSpOYr0EsvvVQT6BUVFUyePJnnnnuOmBjfWdLZIf7xxx/z9NNPs2fPnlrbKy0t5be//S2vvfYa4GuqObtHi0m2bt3KzJkzGT58OIsXL2bMmDFMmTKFadOmsXz5chYuXFhr+SFDhlBeXs4HH3xgU8Wh5X3nXaztO3A+OApH27Y10x0uF66nngSvB8/U6ViWdYGtiGnaXgGdA7zcMaAbOM3rgNY4Qhxg0qRJALz55pukpaXRu3dvWrRowaRJk5gxYwaWZeFwOOjZs2fNOm63m1dffZUOHTqQmppK7969+d73vseVV17J888/j2VZ/OxnP+PXv/61TUcVGuPHj2fChAlkZGQwc+ZMRowYwYwZMxg8eHCd8BoyZAg5OTmUlJTYVG3oWPv3453/JxzpXXAOv7POfMdV38E56j6sLVvxLsm2oUIJF4cDHuwLrZv5t/yPMuD69uGtKVwcViM6BZk9ezaTJ08mLy+P5s2b069fPyZOnIjX66Vnz560b9+e3bt31yyfn5/Pm2++yerVq9m9ezdHjhzB4/HQsmVLbrjhBsaOHcvNN9/c4McRbJt4fUcxbNmyJQcPHuTxxx9n1qxZAa176tSpiG0Tbwjf9B+gNvEIVFYJSzbA+jyoOsctD5cnwsBu8P0gml8iRaMK8cbCrhAfO3Yss2bNonXr1gH3jlGIK8Qjmbsc1n4NBceh0gOXxEFGGnRNA5fh7RH6q5Mac+fOZf78+VE50qM0bknx0M+/20OMoxCXGh6Pp9HcZi8SLRTijUiwzSgiYi7DW4NERKKbQlxExGAKcRERgynERUQMphAXETGYQlxExGAKcRERgynERUQMphAXETGYQlxExGAKcRERg2ko2ghkWVadJ9BHusTExJA8cLiaZVmUes0ZjCvR6Qrp8Yv4SyEuImIwNaeIiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBhMIS4iYjCFuIiIwRTiIiIGU4iLiBjs/wNYbIxfnBsSbwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 454.315x367.889 with 1 Axes>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def equals_func(a, b, c):\n",
    "    c = a == b\n",
    "\n",
    "\n",
    "# For this operation we need 1 ancilla\n",
    "qc = assemble(equals_func, 1)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a813e611",
   "metadata": {},
   "source": [
    "## Complex function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6c447f0f-f982-455d-b5fa-368aae0296c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqAAAAFvCAYAAACVank5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABI50lEQVR4nO3deXyU5b338c/MZGMmhDUbCYtgBAICUsC6HBUUQUADYhUq7alSqtSiKNalPWqf2vZopcDzcLAqlmrPceFQKMGF1opBRPZ9CUiAIGQDAgSyLzPz/DFNJCYhM5PJfc+E7/v1ygu9t+s3Q0i+c93Xdd0Wt9vtRkRERETEIFazCxARERGRy4sCqIiIiIgYSgFURERERAylACoiIiIihlIAFRERERFDKYCKiIiIiKEUQEVERETEUAqgIiIiImIoBVARERERMZQCqIiIiIgYSgFURERERAylACoiIiIihlIAFRERERFDKYCKiIiIiKEUQEVERETEUAqgIiIiImIoBVARERERMZQCqIiIiIgYSgFURERERAylACoiIiIihlIAFRERERFDKYCKiIiIiKEUQEVERETEUAqgIiIiImIoBVARERERMZQCqIiIiIgYSgFURERERAylACoiIiIihlIAFRERERFDKYCKiIiIiKEUQEVERETEUAqgIiIiImIoBVARERERMZQCqIiIiIgYSgFURERERAylACoiIiIihlIAFRERERFDhZldgLQdbrebsrIys8vwmt1ux2KxBOx6brebMpczYNczgt1qC+h7ICIi4g0FUAmYsrIyoqOjzS7DayUlJTgcjoBdr8zlpNNn/wzY9YxwbtRoHDb9GBAREWPpFryIiIiIGEoBVEREREQMpQAqIiIiIoZSABURERERQymAioiIiIihFEBFRERExFAKoCIiIiJiKAVQERERETGUAqiIiIiIGEoBVEREREQMpQAqIiIiIoZSABURERERQymAioiIiIihwswuQC5vGRkZAIwcOdKv8x966CFeffVVkpKSKCgoCGRpYjK3G46ehrxzUO0EeyT07wYd2pldmXEqiuFMNlRXgC0c2sdBh25gsZhdmTFcTig8ChUXPN8PkdEQ2xtsEWZXJiItpQAqQclisfDYY4/x0EMP0atXL06fPs3//u//8vzzz1NWVlZ33KpVq3j11Ve58847Wbx4sYkVB45zyVu4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MZQCqIiIiIgYSgFURERERAylACoiIiIihgozuwBpO9xuN2VlZWaX4TW73Y7FYjG7DBERkcuOAqgETFlZGdHR0WaX4bWSkhIcDofZZYiIiFx2dAteRERERAylACoiIiIihlIAFRERERFDKYCKiIiIiKEUQEVERETEUAqgIiIiImIoBVARERERMZQCqIiIiIgYSgFURERERAylACoiIiIihlIAFRERERFDKYCKiIiIiKEUQEPcypUrufPOO0lMTCQyMpLExERGjhzJK6+8YnZpIiIiIo1SAA1RVVVVfO9732PSpEl8+OGH2O12Bg8eTEREBF988QUvv/yy2SV6JSMjg4yMDL/Pf+ihh3A6nSQkJASwKhEREWlNCqAh6sc//jF//etfGTt2LIcPH+bIkSNs2bKFr7/+msLCQpYsWWJ2iS1isViYPXs2Bw4coLy8nOPHjzN37lzsdnu941atWgXAnXfeaUaZIiIiraLGCduPwcJ/woVyz7biCvhoF5wrNbOywLC43W632UWIbz755BPGjBnDtddey/r16wkLCzO7JABKS0uJjo726Zza3s+RI0fW275gwQIee+wxVqxYwerVq+nfvz+zZs3iiy++4LbbbuPib9vNmzdTWFjI+PHjfWq7pKQEh8Ph0zkiIiKtLesk/GW9J3A2xmKBm/pC2jVgDdGuxOBILpe5Y8eOsWzZMtasWUNWVhYFBQW43W5SUlKYOnUqTzzxBBEREXXHz58/H4D/+I//CJrwGUipqanMmjWL5cuXc88999Rtz87OZuHChUyZMoX33nuvbvvKlSt5/vnncTgclJa2gY+FIiJy2foqH95YC05X08e43fD5QSipgPuvB6vFsPICJkRzc9vy4osv8tRTT7F+/XpsNhsDBgwgLi6OPXv28OyzzzJ16tS6Y8vLy/n000+xWq2MHDmSzZs38/DDD3PbbbcxceJEXnrpJQoLC018NS03depUrFYrCxYsqLd98eLFlJaWMm3atHrb09PTiYqKYuzYsQZWKSIiElillfDnLy4dPi+2/RhsyGrVklqNAmgQuP3229m+fTvFxcUcOnSILVu2cOzYMbZu3Up8fDwrVqxg7969AOzevZuamhq6dOnCf/3Xf3Hdddfx+uuvs2bNGtLT03n22WdJSUlp0cQesw0fPhyn08mWLVvqba+srGTXrl0MHz683vbMzEyysrKYOHGigVWKiIgE1pajUFHt2zmfH/T0iIYaBdAgcN999zF06FAslvp96MOGDWP06NEA7N+/H4D8/HwAzp07xzPPPMO4cePYv38/lZWV7Nmzh1GjRlFUVMTdd99NTk6OsS8kQLp160ZhYSFVVVUN9uXm5hIbG0t4eHi97enp6YwbNw6bzWZUmSIiIgHjdsOXfvRmni72jBkNNW1vAGEIqqysZNWqVXz++edkZ2dTXFyMy+Xpf68NnrVjQGvHONbU1NCnTx/+9re/1YWxq6++mg8++IA+ffpQUFDAggULmDt3rl81DRs2jIKCAp/Oqa25pex2O5WVlY3uq6ioqDvm/PnzddvT09N58sknuemmm7zu/U1JScEaqqO3RUSkTQmPiiHt/2T6de7MOb/jq89fDXBFzUtISGDbtm1+nasAarI1a9bwwAMPcOLEiUse17t3bwCioqLqtv3sZz9r0BNot9uZOXMmL7zwAn//+9/9DqAFBQXk5ub6dW5LlZWVERcX1+i+2tdfVlZWb7vT6QTwqQe0tjdZRETEbI5O/t9HL6usMe13tr8UQE20efNmxo0bR3V1NdOnT+f+++9n4MCBdOrUibCwMA4ePEj//v0JCwujf//+AHTq1Knu/Npt31a7PTs72+/a/FnY3eVyBSTU5eXlkZqaSkRERIPb8ElJSZw+fZrq6vqDZCZOnEhRURFr1671up3ExET1gIqISFCwhbfz+9yocDdJSUkBrMY7LXkIjAKoiZ599lmqqqp46aWXePrppxvs/+ijjwDPskSRkZEA9OvXr27/xUszXay2l7C2V9Af/nSp+7MOaGO2bt3KmDFjGDFiBOvXr6/bHhkZyZAhQ1i3bl2Dc9LS0vj444+pqanxup2srCytAyoiIkFj4T/hyCnfz3vvtRdI6PBC4AtqRer+MYnT6awLUg888ECD/S6Xi3feeQeAa665pm57UlISPXr0AODo0aONXvvIkSMAJCcnB7RmoyxduhSXy8Xs2bPrbZ8xYwYOh6PufanVr18/+vbtS3p6uoFVioiIBNYNKb6fkxIPCR0CX0trUwA1SWlpaV0PZe3Emov94Q9/YOfOnUD9AApw7733AvD22283OM/tdvPWW28BMGrUqECWbJh9+/axaNEiJk+ezPLly5k+fTpz585l3rx5rF27lnfffbfe8WlpaVRWVrJ69WqTKhYREWm5Qd19C5MW4LYBrVZOq1IANUlMTEzdeI3f/va3dWG0qqqKV155heeee67uKUffDqA///nPiYmJ4YsvvuDFF1+sO7empoann36a3bt3ExkZyeOPP27gKwqs2bNnM2fOHAYMGMCiRYuYMmUKCxcuZMKECXz76bFpaWlkZGRQXFxsUrUiIiItF2aDn9wCnbwYHWYB7hkBfRNbu6rWoWfBm+iPf/wjP/3pTwGIj4+ne/fuZGVlUVZWxqJFi5g5cyYul4uioiJiYmLqnbt69WomTZpEZWUlsbGxXHHFFRw5coQzZ84QFhbGn//85wZPDGptgXwWvLfi4+PJy8vjkUce4bXXXvPpXD0LXkREgtGFcli+FfbmgKuRlBYXAxOGeHpMQ5UmIZlo5syZhIWF8corr3Ds2DFsNhsTJkzg6aefxuVy4XQ66dOnT4PwCXDHHXewc+dOfve737FmzRp27txJ586duffee3n66acZOnSoCa/IeHfddReAxn+KiEibEdMOHrgJispg8xE4dQFqnOCIgmt6wJXxYAnB579fTD2gEjBm9IDabDZsNlujT01qjnpARUREzKEeUAlpTqezRctNiYiIiPHUAyoBE6h1QI2iHlARERFzaBa8iIiIiBhKAVREREREDKUAKiIiIiKGUgAVEREREUMpgIqIiIiIoRRARURERMRQCqAiIiIiYigFUBERERExlAKoiIiIiBhKAVREREREDKUAKiIiIiKG0rPgJWDcbjdlZWVml+E1u92OxWIxuwwREZHLjgKoiIiIiBhKt+BFRERExFAKoCIiIiJiKAVQERERETGUAqiIiIiIGEoBVEREREQMpQAqIiIiIoZSABURERERQymAioiIiIihFEBFRERExFAKoCIiIiJiKAVQERERETGUAqiIiIiIGEoBVEREREQMpQAqIiIiIoZSABURERERQymAioiIiIihFEBFRERExFAKoCIiIiJiKAVQERERETGUAqiIiIiIGEoBVEREREQMpQAqIiIiIoZSABURERERQymAioiIiIihFEBFRERExFD/H6bTxN+tbpwTAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 847.653x451.5 with 1 Axes>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def example_func(a, b):\n",
    "    a = True\n",
    "    a_or_b = a | b\n",
    "    tmp = a & a_or_b\n",
    "    b = tmp != False\n",
    "\n",
    "\n",
    "qc = assemble(example_func, 1)\n",
    "qc.draw(output=\"mpl\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90d608a6",
   "metadata": {},
   "source": [
    "## Very complex function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "80aa154c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABiUAAAKxCAYAAAA8Q688AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAADLYUlEQVR4nOzdeXxU9b3/8ffMZGMmBMIaIOx7QLYSFFEL1AURBcUFKl2UctFalILVWq9eb73eakX0/rhYLdZqb7VSCyVYq7XVoKKyE7aAIDtZIOxZJ8nM/P44JhBJyMxk5pyZyev5eOQRnXO+5/s5Q2aSOe/z/X5tPp/PJwAAAAAAAAAAgDCzW10AAAAAAAAAAABoHgglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKeKsLgCxwefzqayszOoyAuJ0OmWz2UJ2PJ/PpzKvJ2THM4PT7gjpcwAAAAAAAAAAF0MogZAoKytTcnKy1WUEpKSkRC6XK2THK/N6lPrRP0N2PDOcGn+NXA7eBgAAAAAAAACYg+mbAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACAKQglAAAAAAAAAACA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\n",
      "text/plain": [
       "<Figure size 2018.01x869.556 with 1 Axes>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def complex_func(a, b, c, d):\n",
    "    a = True\n",
    "    not_a = not a\n",
    "    b = not not_a\n",
    "    a_or_d = a | d\n",
    "    c = b & (a_or_d | (d == a))\n",
    "    d = (c != False) & b == True\n",
    "    b = a | d\n",
    "\n",
    "\n",
    "qc = assemble(complex_func, 4)\n",
    "qc.draw(output=\"mpl\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
